這是一個Baby LLama2的Fork專案,用了中文的資料庫來訓練具有中文能力的Baby LLama2 Model,看ReadMe.md的內容,作者使用的也是一張RTX3090。https://github.com/DLLXW/baby-llama2-chinese.git
訓練一個自己的baby llama2 chinese分為兩個步驟
中文版的作者提共了三種資料的下載點,由於我目前沒有百度帳號,因此無法取得百度百科的資料,有些麻煩,正在想辦法用一些APP看能否成功註冊百度百科的帳號。
不過只使用wiki跟medical dataset的資料也能夠先進行pretrain的步驟:
cd data
### clone wiki dataset
git clone https://huggingface.co/datasets/pleisto/wikipedia-cn-20230720-filtered
### clone medical dataset
git clone https://huggingface.co/datasets/shibing624/medical/tree/main
需要修改一下data_process.py
這個腳本,將main的前面幾行修改成下面這樣,針對剛剛clone下來的wiki與medical dataset進行資料前處理:
if __name__=="__main__":
tokenizer=ChatGLMTokenizer(vocab_file='./chatglm_tokenizer/tokenizer.model')
process_wiki_clean()
process_medical('./data/medical/pretrain/medical_book_zh.json','book')
process_medical('./data/medical/pretrain/train_encyclopedia.json','encyclopedia')
......
完成後在data
資料夾下將會有處理好的4個.bin檔,用來進行pretrain。
在pretrain前需要對pretrain.py進行一些修改,分別是修改網路的大小
if __name__=="__main__":
max_epoch = 50
...
dim = 512
n_layers = 8
並且把sampler改成非分散式的
...
train_sampler = torch.utils.data.RandomSampler(train_ds)
...
試跑了一下沒問題,打算train一個晚上看看情況,並且先嘗試取得百度的帳號,來取得百度百科的訓練資料。